package com.joker.springboottestdemo.job;

import com.joker.demo.core.annotation.JobHandle;
import com.joker.demo.core.domain.dto.JobExecutorParamsDTO;
import com.joker.demo.core.domain.dto.JobExecutorResultDTO;
import com.joker.demo.core.executor.JobExecutorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

/**
 * 正确的任务处理器示例
 * <p>
 * 展示符合新规则的任务处理器用法：
 * 1. 无参数方法：不需要实现JobExecutorService接口
 * 2. 有参数方法：必须实现JobExecutorService接口
 * 3. 类级别：必须实现JobExecutorService接口
 *
 * @author : feixiang.li
 * @since : 2025-01-27 17:10
 */
@Service
@Slf4j
public class CorrectJobExamples {

    /**
     * 示例1：无参数方法（不需要实现JobExecutorService接口）
     * 不支持分片参数
     */
    @JobHandle("simpleJobNoParams")
    public void simpleJobNoParams() throws Exception {
        log.info("执行简单无参数任务开始");

        for (int i = 0; i < 3; i++) {
            log.info("简单任务执行中：{}", i);
            TimeUnit.SECONDS.sleep(1);
        }

        log.info("简单无参数任务执行完成");
    }
} 